package org.dromara.admin.domain.vo;

import org.dromara.admin.domain.TemplateMarket;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.admin.enums.TemplateCategoryEnum;
import org.dromara.admin.enums.PrintTypeEnum;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;


/**
 * 模板市场视图对象 bi_template_market
 *
 * @author Lion Li
 * @date 2025-10-09
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TemplateMarket.class)
public class TemplateMarketVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ExcelProperty(value = "主键ID")
    private Long id;

    /**
     * 模板编号
     */
    @ExcelProperty(value = "模板编号")
    private String templateCode;

    /**
     * 模板名称（例：纸箱厂出货单）
     */
    @ExcelProperty(value = "模板名称", converter = ExcelDictConvert.class)
    private String templateName;

    /**
     * 打印类型（枚举code：针式打印机(DOT_MATRIX)、小票机(RECEIPT)、A4打印机(A4)）
     */
    @ExcelProperty(value = "打印类型", converter = ExcelDictConvert.class)
    private PrintTypeEnum printType;

    /**
     * 分类（枚举code：发货单（DELIVERY）、进货单（PURCHASE）、报价单（QUOTATION）、销售单（SALES）、采购单（PROCUREMENT）、对账单（STATEMENT）、退货单（RETURN））
     */
    @ExcelProperty(value = "分类", converter = ExcelDictConvert.class)
    private TemplateCategoryEnum category;

    /**
     * 模板图片路径
     */
    @ExcelProperty(value = "模板图片路径")
    private String imageUrl;

    /**
     * 模板路径
     */
    @ExcelProperty(value = "模板路径")
    private String templatePath;

    /**
     * 模板被采用次数
     */
    @ExcelProperty(value = "模板被采用次数")
    private Integer usedCount;

    /**
     * 模板被收藏次数
     */
    @ExcelProperty(value = "模板被收藏次数")
    private Integer collectCount;

    /**
     * 是否被收藏
     */
    @ExcelProperty(value = "是否被收藏")
    private Boolean isCompanyCollected;

}
